package com.sendinfo.sso;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public interface AuthHelper extends Helper {

	
	/**
	 * 校验session和cookie中的用户认证和认证domain数据。
	 * 
	 * @param req
	 *            如果为null，不检查cookie中的认证数据。
	 * @param currDomain
	 *            如果为null，不校验当前认证domain数据。
	 * @return 
	 *         返回当前登录用户id。若用户id取自cookie，设置session中的认证数据。若无登录数据或当前登录domain与指定登录domain不符
	 *         ，返回null。
	 */
	Object checkUserId(HttpServletRequest req);

	void putUserId(Object userId,HttpServletRequest req, HttpServletResponse resp);

	void removeUserId(HttpServletRequest req, HttpServletResponse resp);

	String getRedirect(HttpServletRequest req);

	void putRedirect(String redirectDest, HttpServletRequest req);

	boolean checkCode(String code, HttpServletRequest req);

	void putCheckCode(String code, HttpServletRequest req);

	/**
	 * 当前用户IP区域
	 * 
	 * @author juror
	 * @date 2010-2-1 下午08:49:05
	 * @param req
	 * @return
	 */
	String getAreaCode(HttpServletRequest req);

	void putAreaCode(HttpServletRequest req, String areaCode);
	
	String getDomain();
	boolean isSSO();
	
	Object checkLogin(HttpServletRequest req);
}
